<html>
<head><meta charset="utf-8"><title>meeting 2020-12-15 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html">meeting 2020-12-15</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="220013101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220013101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220013101">(Dec 15 2020 at 17:28)</a>:</h4>
<p>Hey all I can't make the meeting today -- can we just cancel until end of year?</p>



<a name="220026667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220026667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220026667">(Dec 15 2020 at 19:08)</a>:</h4>
<p>:( Yeah I suppose we can cancel. I will be around and am going to basically summarize what was done this sprint and over the year as a whole.</p>



<a name="220041542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220041542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220041542">(Dec 15 2020 at 20:59)</a>:</h4>
<p>Alright <span class="user-group-mention" data-user-group-id="692">@WG-traits</span><br>
No official meeting, today, but I am going to just go over the sprint (since that ends today), mostly for myself and anyone who wants to read later</p>



<a name="220041670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220041670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220041670">(Dec 15 2020 at 21:00)</a>:</h4>
<p>But, first, I did just want to thank <em>everyone</em> who has contributed this year in wg-traits. That's both Chalk and rustc. You all are awesome!</p>



<a name="220041811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220041811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220041811">(Dec 15 2020 at 21:01)</a>:</h4>
<p>Alright, so jumping in on sprint.  We basically decided from the get-go that this sprint would be all focused on the type library.</p>



<a name="220041915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220041915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220041915">(Dec 15 2020 at 21:02)</a>:</h4>
<p>/me goes to pull up PRs and such, in addition to the hackmd</p>



<a name="220042148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220042148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220042148">(Dec 15 2020 at 21:04)</a>:</h4>
<p>Okay, first big thing done this sprint is the <code>Visitor</code> and <code>Folder</code> traits</p>



<a name="220042313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220042313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220042313">(Dec 15 2020 at 21:05)</a>:</h4>
<p>For <code>Visitor</code>, we now use <code>ControlFlow</code>, which was recently changed in rustc. (Interestingly, this actually is closer to what Chalk originally had in terms of <code>VisitResult</code>)</p>



<a name="220042488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220042488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220042488">(Dec 15 2020 at 21:07)</a>:</h4>
<p>For <code>Folder</code>, we removed the <code>TargetInterner</code> and now pass self by value (also recently changed in rustc). <a href="https://github.com/rust-lang/chalk/issues/662">chalk#662</a> is up with in-place optimizations that I need to review the tests/merge.</p>



<a name="220042597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220042597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220042597">(Dec 15 2020 at 21:08)</a>:</h4>
<p>Next thing we thought about was reverting <code>ty.kind()</code> -&gt; <code>ty.kind</code>. We haven't done this, but I don't think we should <em>yet</em>. (At least not until it makes sense)</p>



<a name="220042667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220042667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220042667">(Dec 15 2020 at 21:08)</a>:</h4>
<p><code>Erased</code> and <code>Empty</code> regions have been added to Chalk. No work has been done so far to remove <code>ReFree</code> on the rustc side though.</p>



<a name="220042717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220042717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220042717">(Dec 15 2020 at 21:09)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="116009">@nikomatsakis</span> did some work on <code>Param</code> and maybe <code>ReEarlyBound</code>, and trying to remove them. Nothing "finished" though</p>



<a name="220043055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043055">(Dec 15 2020 at 21:12)</a>:</h4>
<p>My binder refactor branch in rustc is really close. I've got it to a point that it tracks bound vars and <code>ReLateBound</code> has the index. I haven't removed the regions keeping track of anon/named/env, since that requires some refactoring around pretty printing code. But that can be done orthogonally. There's also a bug right now that the hashing seems a bit non-deterministic. (At least, tests are hashed different on CI than locally, but haven't investigated - might be compare-mode or something).</p>



<a name="220043264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043264">(Dec 15 2020 at 21:14)</a>:</h4>
<p>There's also a ~5% perf hit on some of the stress tests and a lower % hit of several others. We <em>are</em> doing strictly more work, so this isn't surprising. In the future, other optimizations can be made to close the gap (like, when we no longer store anon/named/env in the region itself (only binders), anonymizing is as simple as switching the binders without folding), but that will come later.</p>



<a name="220043297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043297">(Dec 15 2020 at 21:14)</a>:</h4>
<p>I'm thinking about how to split up the PR into smaller, easier to review, PRs.</p>



<a name="220043376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043376">(Dec 15 2020 at 21:15)</a>:</h4>
<p>I made a PR to change <code>Binder&lt;&amp;'tcx List&lt;ExistentialPredicate&gt;&gt;</code> to <code>&amp;'tcx List&lt;Binder&lt;ExistentialPredicate&gt;&gt;</code> and that's in the bors queue. It's not 100% what Chalk does yet, but it's closer</p>



<a name="220043591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043591">(Dec 15 2020 at 21:17)</a>:</h4>
<p>The initial PR to split out <code>rustc_type_ir</code> was merged (<a href="https://github.com/rust-lang/rust/issues/79169">#79169</a>). Now we can iteratively move types out of <code>rustc_middle</code> into it</p>



<a name="220043676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043676">(Dec 15 2020 at 21:18)</a>:</h4>
<p>Seems like there was a slight perf regression, but that might just be fixed by adding <code>#[inline]</code> to <code>DebruijnIndex</code> functions</p>



<a name="220043762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043762">(Dec 15 2020 at 21:19)</a>:</h4>
<p>Some other things that we didn't explicitly talk about in type library plans:</p>



<a name="220043781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043781">(Dec 15 2020 at 21:19)</a>:</h4>
<p>The variance PR in Chalk got merged!</p>



<a name="220043865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043865">(Dec 15 2020 at 21:19)</a>:</h4>
<p>There are now <code>TypeFlags</code> in Chalk</p>



<a name="220043976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220043976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220043976">(Dec 15 2020 at 21:20)</a>:</h4>
<p>chalk-engine now uses canonical goals instead of instantiated ones when getting program clauses</p>



<a name="220044060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220044060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220044060">(Dec 15 2020 at 21:21)</a>:</h4>
<p><code>DiscriminantKind</code> was added to Chalk</p>



<a name="220044164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220044164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220044164">(Dec 15 2020 at 21:21)</a>:</h4>
<p>And I probably missed a few other smaller-impact PRs</p>



<a name="220044199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220044199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220044199">(Dec 15 2020 at 21:21)</a>:</h4>
<p>But yeah, basically a really productive sprint</p>



<a name="220044542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220044542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220044542">(Dec 15 2020 at 21:24)</a>:</h4>
<p>I think I'll skip doing general updates from the whole year for now. But I am going to write a "wg-traits year in review" blogpost.</p>



<a name="220044561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202020-12-15/near/220044561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202020-12-15.html#220044561">(Dec 15 2020 at 21:24)</a>:</h4>
<p>Again, thank you all for all the work you've done!</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>